// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

const rp = require('request-promise') 

const BASE_URL = 'http://musicapi.xiecheng.live'

const TcbRouter = require('tcb-router')  // 引入tcb-router模块
// 云函数入口函数
/* 
  event 指的是触发云函数的事件，当小程序端调用云函数时，event 就是小程序端调用云函数时传入的参数(event 参数包含小程序端调用传入的 data)
  context 对象包含了此处调用的调用信息和运行状态，可以用它来了解服务运行的情况
*/
exports.main = async (event, context) => {
  const app = new TcbRouter({event})

  app.router('playlist', async(ctx,next) => {
    ctx.body = await cloud.database().collection('playlist')
      .skip(event.start)
      .limit(event.count)
      .orderBy('createTime','desc')  // orderBy('参数1','参数2')参数1：排序依据字段，参数2：desc降序 asc升序
      .get()
      .then((res) => {
        return res
      })
  })
  app.router('showmusic', async(ctx, next) => {
    ctx.body = await rp(BASE_URL + '/playlist/detail?id=' + parseInt(event.musicId))
    .then((res) => {
      // 将得到的字符串数据转换为js对象
      return JSON.parse(res)   
    })
  })
  app.router('musicUrl', async(ctx,next) =>{
    ctx.body = await rp(BASE_URL + `/song/url?id=${event.musicId}`)
    .then((res) => {
      return JSON.parse(res)
    })
  })
  return app.serve()
}